# encoding: utf-8
# @Author: zsl
# @Desc : 闹钟
# 闹钟是一种具有可以在预先设定的时间被激活以响铃的功能的时钟，用于唤醒打工人们。
# 使用Python中的DateTime模块来创建闹钟，并用Pvthon中的playsound库来播
# 在运行这个程序之前，请确保安装了playsound库。
# 同时，准备一个名为alarm_sound.wav的音频文件作为闹钟声音。
# 这个程序允许用户输入小时、分钟和秒来设置闹钟，当到达设定时间时，会播放指定的音频文件。
# @Date  : 2025/07/08 14:32
import tkinter as tk
from datetime import datetime
from playsound import playsound

class AlarmClock:
    def __init__(self):
        self.root = tk.Tk()
        self.root.title("闹钟")

        self.hour_var = tk.StringVar()
        self.minute_var = tk.StringVar()
        self.second_var = tk.StringVar()

        tk.Label(self.root, text="小时：").grid(row=0, column=0)
        tk.Entry(self.root, textvariable=self.hour_var).grid(row=0, column=1)

        tk.Label(self.root, text="分钟：").grid(row=1, column=0)
        tk.Entry(self.root, textvariable=self.minute_var).grid(row=1, column=1)

        tk.Label(self.root, text="秒：").grid(row=2, column=0)
        tk.Entry(self.root, textvariable=self.second_var).grid(row=2, column=1)

        tk.Button(self.root, text="设置闹钟", command=self.set_alarm).grid(row=3, column=0, columnspan=2)

    def set_alarm(self):
        hour = int(self.hour_var.get())
        minute = int(self.minute_var.get())
        second = int(self.second_var.get())

        while True:
            now = datetime.now()
            current_hour = now.hour
            current_minute = now.minute
            current_second = now.second

            if current_hour == hour and current_minute == minute and current_second == second:
                playsound('zanghuaying.wav')
                break

    def run(self):
        self.root.mainloop()

if __name__ == "__main__":
    alarm_clock = AlarmClock()
    alarm_clock.run()
